package com.game.business.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.game.common.core.domain.BaseEntity;
import com.game.common.annotation.Excel;
import com.game.common.core.domain.entity.SysUser;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 订单对象 t_order
 *
 * @author ruoyi
 * @date 2025-10-13
 */
@Data
@TableName(value = "t_order")
@EqualsAndHashCode(callSuper = true)
public class TOrder extends BaseEntity{
private static final long serialVersionUID = 1L;

/** $column.columnComment */
@TableId(type = IdType.ASSIGN_ID)
private String id;
/** "订单编号" */
@Excel(name = "订单编号")
private String orderNo;
/** "类型"  1  正常订单  2 代练订单*/
@Excel(name = "类型")
private String type;
/** "游戏" */
@Excel(name = "游戏")
private String gameId;
/** "任务Id" */
@Excel(name = "任务Id")
private String rwId;
/** "任务补充" */
@Excel(name = "任务补充")
private String rwBc;
/** "区服类型" */
@Excel(name = "区服类型")
private String qfType;
/** "区服Id" */
@Excel(name = "区服Id")
private String qfId;
/** "用户Id" */
@Excel(name = "用户Id")
private String userId;
/** "代练师Id" */
@Excel(name = "代练师Id")
private String playUserId;
/** "用户优惠券Id" */
@Excel(name = "用户优惠券Id")
private String userCouponId;
/** "优惠券Id" */
@Excel(name = "优惠券Id")
private String couponId;
/** "优惠券金额" */
@Excel(name = "优惠券金额")
private BigDecimal couponPrice;
/** "实付金额" */
@Excel(name = "实付金额")
private BigDecimal price;

 /** "订单金额" */
 @Excel(name = "订单金额")
 private BigDecimal orderPrice;
 /** "是否需要担保人" */
 @Excel(name = "是否需要担保人")
 private String  needDbr;
/** "保证金" */
@Excel(name = "保证金")
private BigDecimal bzPrice;
/** "时限要求" */
@Excel(name = "时限要求")
private BigDecimal hour;
/** "订单状态"  1 待接单  2 已接单  3 已完成   4 异常订单    9 已撤销单*/
@Excel(name = "订单状态")
private String orderStatus;
// 阶段状态   2自行协商  2-1 自行协商有一方拒绝   3 申请担保人介入   4担保人介入
// 4-1 担保人出具的方案 ---一方不同意方案         4-5 担保人申请仲裁     5 进入仲裁阶段   6 强制仲裁
 private String jdStatus;

 // 仲裁费用支付方式   1败方支付 2双方AA
 private String zcType;
/** "1上架 2下架" */
@Excel(name = "上架 下架")
private String status;
/** "下单时间" */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderTime;
/** "完成时间" */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date finallyTime;
/** "取消时间" */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date cancelTime;
/** "支付时间" */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
/** "是否已经支付，0：已经支付过   1：，没有支付过" */
@Excel(name = "是否已经支付，0：已经支付过   1：，没有支付过")
private String isPayed;
/** "支付方式" */
@Excel(name = "支付方式")
private String payType;
/** "申诉状态: 0:申诉处理中 1:申诉成功  2:申诉失败" */
@Excel(name = "申诉状态: 0:申诉处理中 1:申诉成功  2:申诉失败")
private String refundStatus;
/** "0 未评价   1 已评价" */
@Excel(name = "0 未评价   1 已评价")
private String isComment;
/** "是否退款  0 未退款  1 已退款" */
@Excel(name = "是否退款  0 未退款  1 已退款")
private String isRefund;
/** "订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易" */
@Excel(name = "订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易")
private String closeType;
/** "订单标题" */
@Excel(name = "订单标题")
private String title;


/** "微信支付平台订单号" */
@Excel(name = "微信支付平台订单号")
private String outTradeNo;
private String delFlag;

 /** "打手对象" */
 @TableField(exist = false)
 private SysUser playUser;

 /** "发单人对象" */
 @TableField(exist = false)
 private SysUser user;
 /** "担保人对象列表" */
 @TableField(exist = false)
 private List<TOrderDbrRecord> dbrUserList;


 /** "担保人Id" */
 @TableField(exist = false)
private  String  dbrUserId;
 /** "担保人来源" */
 @TableField(exist = false)
 private  String  source;

 /** "排序方式" 1 按创建时间升序  2 按创建时间降序  3 按价格升序  4按价格降序 */
 @TableField(exist = false)
 private String orderType;
 // 游戏对象
 @TableField(exist = false)
 private  TGame game;


 // 区服类型名称
 @TableField(exist = false)
 private  String qfTypeName;
 // 区服名称
 @TableField(exist = false)
 private  String qfName;
 // 任务名称
 @TableField(exist = false)
 private  String rwName;
 // 是有代练师
 @TableField(exist = false)
 private  String isHasPlay;

 // 是有已经报价
 @TableField(exist = false)
 private  Boolean isyjBj;

 // 1 用户  2 代练师   3担保人
 @TableField(exist = false)
 private  String sfType;

 /** "担保人大厅" */
 @TableField(exist = false)
 private  String  dbrUserDt;

//用户昵称
 @TableField(exist = false)
 private  String  nickName;

 //群聊对象
 @TableField(exist = false)
 private  TGroup  group;






}
